Converted these images to PNG, saving a handful of bytes per image
[adiumx.git] / Utilities / Localization Utility Scripts / i18n.sh
blob39c889cf70961a98b4e04dfcead1d0b33acde6fc
1 # Copyright (c) 2003 David Kocher. All rights reserved.
2 # http://cyberduck.ch/
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2 of the License, or
7 # (at your option) any later version.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
14 # Bug fixes, suggestions and comments should be sent to:
15 # dkocher@cyberduck.ch
17 #!/bin/bash
19 base_language="en.lproj"
21 usage() {
22 echo ""
23 echo "Show localization status using polyglot"
24 echo " Usage: i18n.sh [-l <language>] --status"
25 echo "Initialize new localization project"
26 echo " Usage: i18n.sh [-l <language>] --init"
27 echo "Update localization(s), use [--force] to ignore previous custom layout in localized NIBs"
28 echo " Usage: i18n.sh [-l <language>] [-n <nib>] [--force] --update"
29 echo ""
30 echo "<language> must be ja.lproj, fr.lproj, es.lproj, ..."
31 echo "<nib> must be Preferences.nib, Main.nib, ..."
32 echo ""
35 init() {
36 mkdir -p $language
37 for nibfile in `ls $base_language | grep .nib | grep -v ~.nib | grep -v .bak`; do
38 echo "Copying $nibfile"
39 nib=`basename $nibfile .nib`
40 cp -R $base_language/$nibfile $language/$nibfile
41 rm -rf $language/$nibfile/.svn
42 nibtool --localizable-strings $language/$nibfile > $language/$nib.strings
43 done
44 cp $base_language/Localizable.strings $language/
45 cp $base_language/InfoPlist.strings $language/
48 open() {
49 nib=`basename $nibfile .nib`
50 if [ "$language" = "all" ] ; then
52 for lproj in `ls . | grep lproj`; do
53 if [ $lproj != $base_language ]; then
54 echo "*** Opening $lproj/$nib.strings"
55 /usr/bin/open $lproj/$nib.strings
56 fi;
57 done;
59 else
61 echo "*** Opening $language/$nib.strings"
62 /usr/bin/open $language/$nib.strings
64 fi;
67 status() {
68 if [ "$language" = "all" ] ; then
70 for lproj in `ls . | grep lproj`; do
71 language=$lproj;
72 if [ $language != $base_language ]; then
73 echo "*** Status of $language Localization...";
74 /usr/local/bin/polyglot -b `basename $base_language .lproj` -l `basename $language .lproj` .
75 fi;
76 done;
78 else
80 echo "*** Status of $language Localization...";
81 /usr/local/bin/polyglot -b `basename $base_language .lproj` -l `basename $language .lproj` .
83 fi;
86 nib() {
87 #Changes to the .strings has precedence over the NIBs
88 updateNibFromStrings;
89 #Update the .strings with new values from NIBs
90 udpateStringsFromNib;
93 updateNibFromStrings() {
94 if (`test -f $language/$nib.strings`); then
96 if (`test -d $language/$nibfile`); then
98 rm -rf $language/$nibfile.bak
99 mv $language/$nibfile $language/$nibfile.bak
101 if($force == true); then
103 # force update
104 echo "*** Updating $nib... (force) in $language..."
105 nibtool --write $language/$nibfile \
106 --dictionary $language/$nib.strings $base_language/$nibfile
108 else
110 # incremental update
111 echo "*** Updating $nib... (incremental) in $language..."
112 nibtool --write $language/$nibfile \
113 --incremental $language/$nibfile.bak \
114 --dictionary $language/$nib.strings $base_language/$nibfile
118 if (`test -d $language/$nibfile.bak`); then
119 cp -R $language/$nibfile.bak/.svn $language/$nibfile/.svn
120 rm -rf $language/$nibfile.bak
128 udpateStringsFromNib() {
129 if (`test -d $language/$nibfile`); then
131 echo "*** Updating $nib.strings in $language..."
132 nibtool --previous $base_language/$nibfile \
133 --incremental $language/$nibfile \
134 --localizable-strings $base_language/$nibfile > $language/$nib.strings
139 update() {
140 if [ "$language" = "all" ] ; then
142 echo "*** Updating all localizations...";
143 for lproj in `ls . | grep lproj`; do
144 language=$lproj;
145 if [ $language != $base_language ]; then
147 echo "*** Updating $language Localization...";
148 if [ "$nibfile" = "all" ] ; then
149 echo "*** Updating all NIBs...";
150 for nibfile in `ls $language | grep .nib | grep -v ~.nib | grep -v .bak`; do
151 nib=`basename $nibfile .nib`
152 nibtool --localizable-strings $base_language/$nibfile > $base_language/$nib.strings
153 nib;
154 done;
156 if [ "$nibfile" != "all" ] ; then
157 nib=`basename $nibfile .nib`
158 nibtool --localizable-strings $base_language/$nibfile > $base_language/$nib.strings
159 nib;
163 done;
165 else
167 echo "*** Updating $language Localization...";
168 if [ "$nibfile" = "all" ] ; then
169 echo "*** Updating all NIBs...";
170 for nibfile in `ls $language | grep .nib | grep -v ~.nib | grep -v .bak`; do
171 nib=`basename $nibfile .nib`;
172 nibtool --localizable-strings $base_language/$nibfile > $base_language/$nib.strings
173 nib;
174 done;
176 if [ "$nibfile" != "all" ] ; then
178 nib=`basename $nibfile .nib`;
179 nibtool --localizable-strings $base_language/$nibfile > $base_language/$nib.strings
180 nib;
187 language="all";
188 nibfile="all";
189 force=false;
191 while [ "$1" != "" ] # When there are arguments...
192 do case "$1" in
193 -l | --language)
194 shift;
195 language=$1;
196 echo "Using Language:$language";
197 shift;
199 -n | --nib)
200 shift;
201 nibfile=$1;
202 echo "Using Nib:$nibfile";
203 shift;
205 -f | --force)
206 force=true;
207 shift;
209 -h | --help)
210 usage;
211 exit 0;
212 echo "*** DONE. ***";
214 -i | --init)
215 echo "Init new localization...";
216 init;
217 echo "*** DONE. ***";
218 exit 0;
220 -s | --status)
221 echo "Status of localization...";
222 status;
223 echo "*** DONE. ***";
224 exit 0;
226 -u | --update)
227 echo "Updating localization...";
228 update;
229 echo "*** DONE. ***";
230 exit 0;
232 -o | --open)
233 echo "Opening localization .strings files...";
234 open;
235 echo "*** DONE. ***";
236 exit 0;
239 echo "Option [$1] not one of [--status, --update, --open, --init]"; # Error (!)
240 exit 1
241 ;; # Abort Script Now
242 esac;
243 done;
245 usage;